home *** CD-ROM | disk | FTP | other *** search
- /* to_rexx.c */
-
- /* Copyright © 1989 by Donald T. Meyer, Stormgate Software
- * All Rights Reserved
- */
-
-
-
- #include "rxil.h"
-
-
-
- /* NAME
- * RxilToRexx
- *
- * SYNOPSIS
- * result = RxilToRexx( cmd, arg0, arg1, arg2, arg3 );
- *
- * LONG result
- *
- * ULONG cmd
- * STRPTR arg0
- * STRPTR arg1
- * STRPTR arg2
- * STRPTR arg3
- *
- * FUNCTION
- * Send a command packet to the Rexx Master.
- * This is an asynchronous send, no success or failure will be
- * observed.
- *
- * INPUTS
- * cmd = the command to send.
- * arg0 = a null-terminated string to convert into an Argstring.
- * arg1 = a null-terminated string to convert into an Argstring.
- * arg2 = a null-terminated string to convert into an Argstring.
- * arg3 = a null-terminated string to convert into an Argstring.
- *
- * RESULT
- * Zero for success, non-zero to indicate failure.
- *
- * SIDES
- *
- * HISTORY
- * 01-Aug-89 Creation.
- *
- * BUGS
- *
- * SEE ALSO
- *
- */
-
- LONG RxilToRexx( ULONG cmd,
- STRPTR arg0, STRPTR arg1, STRPTR arg2, STRPTR arg3 )
- {
- struct MsgPort *rmast = NULL;
- struct RexxMsg *rexxmsg;
-
-
- /* Allocate a packet to send to rexxmaster */
- rexxmsg = CreateRexxMsg( NULL, NULL, NULL );
- if( rexxmsg == NULL )
- {
- return( 1 );
- }
-
- rexxmsg->rm_Action = cmd | RXFF_NONRET;
-
- rexxmsg->rm_Args[0] = arg0;
- rexxmsg->rm_Args[1] = arg1;
- rexxmsg->rm_Args[2] = arg2;
- rexxmsg->rm_Args[3] = arg3;
-
- Forbid();
- if( ( rmast = FindPort( "REXX" ) ) != NULL )
- {
- PutMsg( rmast, (struct Message *)rexxmsg );
- }
- Permit();
-
- if( rmast == NULL )
- {
- /* we could not find the REXX port, this failed! */
- DeleteRexxMsg( rexxmsg );
- return( 2 );
- }
-
- return( 0 );
- }
-
-